{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "73bd968b-d970-4a05-94ef-4e7abf990827",
   "metadata": {},
   "source": [
    "Chapter 09\n",
    "\n",
    "# 经济型QR分解\n",
    "《线性代数》 | 鸢尾花书：数学不难"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd98ba2e-2822-45a5-b605-5850aac4ab26",
   "metadata": {},
   "source": [
    "这段代码完整地展示了**经济型 QR 分解（Economy QR Decomposition）**的数学结构和正交矩阵 $Q$ 的基本性质，并通过热图可视化了整个过程，帮助建立直观理解。\n",
    "\n",
    "---\n",
    "\n",
    "我们首先生成一个 $12 \\times 8$ 的随机实矩阵 $A$，即：\n",
    "$$\n",
    "A \\in \\mathbb{R}^{12 \\times 8}\n",
    "$$\n",
    "矩阵 $A$ 的列数小于行数，通常被称为“瘦矩阵”或“高瘦矩阵”。随后，进行经济型 QR 分解：\n",
    "$$\n",
    "A = QR\n",
    "$$\n",
    "其中：\n",
    "\n",
    "- $Q \\in \\mathbb{R}^{12 \\times 8}$ 是一个列向量两两正交且范数为 $1$ 的**正交矩阵的一部分**，即 $Q$ 的列向量满足\n",
    "  $$\n",
    "  Q^\\top Q = I_8\n",
    "  $$\n",
    "  它的每一列构成 $A$ 的列空间的一个正交基。\n",
    "\n",
    "- $R \\in \\mathbb{R}^{8 \\times 8}$ 是一个**上三角矩阵**，它记录了将原始列向量投影到正交基上的系数。\n",
    "\n",
    "这种分解方式保留了必要的信息（因为 $A$ 的秩至多为 $8$），同时节省了存储空间——$Q$ 并不是 $12 \\times 12$ 的完整正交矩阵，而是只保留了 $A$ 列空间所需的 $8$ 列。\n",
    "\n",
    "---\n",
    "\n",
    "随后，代码通过热图展示以下矩阵结构：\n",
    "\n",
    "1. 矩阵 $A$ 的热图；\n",
    "2. 正交矩阵 $Q$ 的热图；\n",
    "3. 上三角矩阵 $R$ 的热图；\n",
    "4. 利用等式 $A = Q @ R$ 展示三者的分解关系。\n",
    "\n",
    "通过颜色分布我们可以直观观察到：\n",
    "\n",
    "- $R$ 的下三角区域接近全零；\n",
    "- $Q$ 的列结构均衡、对称，符合正交性特征；\n",
    "- $A$ 本身的列结构在 $Q$ 的基础上被重新编码为 $R$ 的列系数。\n",
    "\n",
    "---\n",
    "\n",
    "接下来，为了验证 $Q$ 的正交性，代码分别绘制了：\n",
    "$$\n",
    "Q^\\top Q = I, \\quad QQ^\\top \\neq I\n",
    "$$\n",
    "\n",
    "从数学角度，这说明：\n",
    "\n",
    "- $Q^\\top Q = I_8$ 成立，因为 $Q$ 的列向量是单位正交的；\n",
    "- $QQ^\\top$ 是一个 $12 \\times 12$ 的**投影矩阵**，其作用是将任意向量投影到 $A$ 的列空间；\n",
    "- 所以：\n",
    "  $$\n",
    "  QQ^\\top \\neq I_{12}\n",
    "  $$\n",
    "  但 $QQ^\\top$ 是一个**幂等矩阵**，即满足：\n",
    "  $$\n",
    "  (QQ^\\top)^2 = QQ^\\top\n",
    "  $$\n",
    "\n",
    "这正体现了**经济型 QR 分解与完全型 QR 分解的区别**：前者只提供构造 $A$ 所需的最小维度正交基，而后者扩展为方阵，使得 $Q$ 是真正意义上的正交矩阵（满足 $QQ^\\top = I$ 且 $Q^\\top Q = I$）。\n",
    "\n",
    "---\n",
    "\n",
    "整体来看，这段代码从数学角度展示了：\n",
    "\n",
    "- 如何对一个矩阵 $A \\in \\mathbb{R}^{m \\times n}$ ($m > n$) 执行经济型 QR 分解；\n",
    "- 正交矩阵的核心性质 $Q^\\top Q = I$；\n",
    "- 投影矩阵 $QQ^\\top$ 在几何上的含义；\n",
    "- 可视化角度如何辅助理解矩阵结构与运算效果。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e13bd314-8cae-470d-ab76-f0d732c6c940",
   "metadata": {},
   "source": [
    "## 初始化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "56e73d69-318d-4046-9889-a7f60a28df17",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np  # 导入数值计算库\n",
    "import seaborn as sns  # 导入数据可视化库\n",
    "from matplotlib import pyplot as plt  # 导入绘图库"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6336fd3e-d094-4cd8-bf1a-b2d4396f100d",
   "metadata": {},
   "source": [
    "## 生成矩阵A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "dc2a246d-e54d-4a25-b4db-8ce06223a64c",
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(88888)\n",
    "A = np.random.randn(12, 8)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "038cfdf6-d1dd-49c7-823f-c7a0aebcf684",
   "metadata": {},
   "source": [
    "## 经济型QR分解"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "4860b21b-0a00-4c69-9b7c-a2cb06b3a43d",
   "metadata": {},
   "outputs": [],
   "source": [
    "Q, R = np.linalg.qr(A)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c4b72971-34eb-482f-9aa1-9ec3751dc8d1",
   "metadata": {},
   "source": [
    "## 可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "c6a28949-29f3-4cda-8bb5-00763aa31c79",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'R')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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eWMZhqFhw4bZeWsAUGF2c0Cw5n+JHAAAkn+/1UvjzxxeGn/n9tI4MeeXF6+VfFAWf3NFafzJIWUJZH4J+8L27bff1qOPPqoxY8Zo06ZN6tq1q3r16qWcnJwy2508eVLt27fXK6+8YnmsVatWadiwYVq7dq2WLVumc+fOKSMjQydPniy1TePGjZWdna3169dr/fr16tmzp2666SZt3brV0pjr1q3Ta6+9pksvvdTS9r/5zW/0/fffFy9btmwpc/sff/xRaWlpiomJ0ZIlS7Rt2zZNnDhRdevWLTeun4+zbNkySdLtt99uKU4AcII/OSBY879EDgAAf3+rl8afObw0/s7tpanonF8Wu/mgLHZzRWn8zSFlCWh+McPc5Zdfbg4dOrTEa8nJyebo0aMt9yHJXLRoke2xDx8+bEoyV61aZatdvXr1zJkzZ5a73U8//WRecskl5rJly8zu3bubjzzySJnbjx071mzfvr2tWEaNGmWmp6fbanMhjzzyiNm8eXOzoKCgwn0BgFUVzQHBnv9NkxwAILI48Vu9NP7O4aWpyNxeGqtzflns5oOy+JMrSuNUDimLk/klrI/Ynj17Vhs2bFBGRkaJ1zMyMrRmzZqAj5+XlydJql+/vqXt8/PztWDBAp08eVKdO3cud/thw4apd+/euuaaayzHtHv3biUmJqpZs2bq16+f9u7dW+b27733nlJTU3X77berYcOGuuyyy/T6669bHk/y/X+YN2+eBg0aJMMwbLUFAH+FMgfYnf8lcgCAyBPq3+p2+TO3l8bunF8Wf/JBWezmitI4kUPK4nR+CevC9ujRo8rPz1ejRo1KvN6oUSPl5uYGdGzTNDVixAilp6erbdu2ZW67ZcsW1axZUx6PR0OHDtWiRYvUpk2bMtssWLBAGzduVFZWluWYrrjiCs2dO1cff/yxXn/9deXm5qpLly764YcfSm2zd+9eTZ8+XZdccok+/vhjDR06VL///e81d+5cy+MuXrxYx48f1z333GO5DQBUVKhygJ35XyIHAIhcofytbpfdub00/sz5ZfEnH5TFn1xRGidySFmczi/RjvQSYL+s4E3TDPhe4+HDh+ubb77R6tWry922VatW2rx5s44fP653331XAwcO1KpVq0r9kh84cECPPPKIli5dqqpVq1qOqVevXsV/bteunTp37qzmzZtrzpw5GjFixAXb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",
      "text/plain": [
       "<Figure size 1200x300 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axs = plt.subplots(1, 5, figsize=(12, 3))  # 创建子图\n",
    "\n",
    "plt.sca(axs[0])\n",
    "ax = sns.heatmap(A, cmap='bwr', vmax=2.5, vmin=-2.5,  # 绘制矩阵 X 的热图\n",
    "                 linecolor = 'k',linewidths = 0.1,\n",
    "                 cbar_kws={\"orientation\": \"horizontal\"})\n",
    "ax.set_aspect(\"equal\")\n",
    "plt.title('A')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')  # 绘制等号\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(Q, cmap='bwr', vmax=2.5, vmin=-2.5,  # 绘制完整正交矩阵 Qc 的热图\n",
    "                 linecolor = 'k',linewidths = 0.1,\n",
    "                 cbar_kws={\"orientation\": \"horizontal\"})\n",
    "ax.set_aspect(\"equal\")\n",
    "plt.title('Q')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')  # 绘制乘号\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(R, cmap='bwr', vmax=2.5, vmin=-2.5,  # 绘制上三角矩阵 Rc 的热图\n",
    "                 linecolor = 'k',linewidths = 0.1,\n",
    "                 cbar_kws={\"orientation\": \"horizontal\"})\n",
    "ax.set_aspect(\"equal\")\n",
    "plt.title('R')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d44692d4-f279-43a7-8ed9-44e72ba1ba64",
   "metadata": {},
   "source": [
    "## Q为正交矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "0cbcfb02-23a0-46f2-a905-283f7e57e991",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Q')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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AA9qTNE8b948JSYmKiIiQsnJyfr000+9jvXJJ5/o3nvvVXx8vAzD0KpVq7yOlZWVpc6dO6thw4Zq2rSp+vXrp4MHD3odb/78+brlllsUGRmpyMhIde3aVWvWrPE63vXyNQxDo0aN8jrGpEmTZBhGmSU2NrZSeX399dd6+OGH1aRJE9WrV0+dOnXSzp07vYrVsmXLa/IzDEMjRoyoVI4Aqpcvx31PfD2G2+m3smNxeXw5ppansLBQzz//vBITE1W3bl3deOONevHFF+V2uysdu6K52jRNTZo0SfHx8apbt6569uypvXv3VrpfAMHF7lzjTR3hzVzjq5rAynxTmX17u/NNTd1PrxFF89tvv61Ro0bpueee065du9StWzf16dNHOTk5XsW7ePGiOnbsqFdffbXSuW3cuFEjRozQ1q1btW7dOhUWFio9PV0XL170Kl6zZs00depU7dixQzt27FCvXr103333+WRHYPv27Xrttdd0yy23VDrWzTffrFOnTpUue/bs8TrW+fPnlZqaqrCwMK1Zs0b79u3TjBkz1KhRI6/ibd++vUxu69atkyQ98MADXucIoHr5etz3xNdjuBW+HIuvx9djanmmTZumBQsW6NVXX9X+/fv1yiuvaPr06ZozZ06lY1c0V7/yyiuaOXOmXn31VW3fvl2xsbHq3bu3vv3220r3DSA4eDPXeFNHeDPX+KImsDPfeLNv7818U2P3080a4PbbbzczMjLKvJaUlGSOHz++0rElmStXrqx0nBKnT582JZkbN270WcwbbrjBXLRoUaVifPvtt+aPfvQjc926dWaPHj3MkSNHeh1r4sSJZseOHSuVz/eNGzfOTEtL81m8q40cOdJs1aqV6Xa7q6wPAL5VleN+eapiDP8+X47FnlT1mPp999xzjzl06NAyr/385z83H374YZ/2c/Vc7Xa7zdjYWHPq1KmlrxUUFJhRUVHmggULfNo3gNqrsnONt3WEt3ONnZrAznzj7b69L+abmrKfHvBHmq9cuaKdO3cqPT29zOvp6enavHmzn7LyLC8vT5LUuHHjSsdyuVxasWKFLl68qK5du1Yq1ogRI3TPPffoxz/+caXzkqTDhw8rPj5eiYmJGjBggI4ePep1rNWrVyslJUUPPPCAmjZtqltvvVWvv/66T/K8cuWKli9frqFDh8owDJ/EBFC1/Dnu+3IMvx5f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",
      "text/plain": [
       "<Figure size 1200x300 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axs = plt.subplots(1, 5, figsize=(12, 3))  # 创建子图\n",
    "\n",
    "plt.sca(axs[0])\n",
    "ax = sns.heatmap(Q.T @ Q, cmap='bwr', vmax=2.5, vmin=-2.5,  # 绘制 Qc.T @ Qc 的热图\n",
    "                 linecolor = 'k',linewidths = 0.1,\n",
    "                 cbar_kws={\"orientation\": \"horizontal\"})\n",
    "ax.set_aspect(\"equal\")\n",
    "plt.title('I')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')  # 绘制等号\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(Q.T, cmap='bwr', vmax=2.5, vmin=-2.5,  # 绘制 Qc.T 的热图\n",
    "                 linecolor = 'k',linewidths = 0.1,\n",
    "                 cbar_kws={\"orientation\": \"horizontal\"})\n",
    "ax.set_aspect(\"equal\")\n",
    "plt.title('Q.T')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')  # 绘制乘号\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(Q, cmap='bwr', vmax=2.5, vmin=-2.5,  # 绘制 Qc 的热图\n",
    "                 linecolor = 'k',linewidths = 0.1,\n",
    "                 cbar_kws={\"orientation\": \"horizontal\"})\n",
    "ax.set_aspect(\"equal\")\n",
    "plt.title('Q')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "97d4884a-d8e4-439c-a1d0-a1af76a11a9d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Q.T')"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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dlq6dKnGjRt3yRhvjDd//OMfNWDAAKWlpVmuFUBoC/Tjsl30Ad7X1H8jAdk0JyUlKTIy8qIzSmfOnLnorIK3PP7441q9erXef/99paene337O3bs0JkzZ5SVlVX3XHV1td5//33NnTtXFRUVioyM9Equ1NTUiyZTHTt21BtvvOGV7X/dk08+qYkTJ2rIkCGSXBOtTz75RPn5+T59s9R+o2thYaFSU1Prnvfl3wiA0BIsY010dLTat28vScrOzta2bdv0+9//XgsXLrzk+t4ab1q0aKEuXbro8OHDbte53PHmk08+0bp16/Tmm29aWh9AaAuW47Jd9AHe468eICA/0xwdHa2srKy6b9OstXbtWt1yyy1ezWWapkaPHq0333xTf//735WZmenV7de69dZbtXv3bu3atavukZ2drZ///OfatWuX194okpSTk3PRV+YfOnRIV111lddy1CorK1NERP0/o8jISK/85FRDMjMzlZKSUu9vpLKyUhs2bPD63wiA0BSsY41pmqqoqHC73FvjTUVFhfbv319vUvJNlzveLF68WK1bt9Ztt91maX0AoS1Yj8uNoQ/wHr/1AD77irHLtGLFCrNZs2bmH//4R3Pfvn3m2LFjzRYtWpjHjx/3ap5HH33UTEhIMN977z3z9OnTdY+ysjKv5rkUX31r3tatW82oqChz6tSp5uHDh82XX37ZjI2NNZcvX+71XMOGDTO//e1vm2+//bZ57Ngx88033zSTkpLM8ePHX/a2P//8c3Pnzp3mzp07TUnmCy+8YO7cudP85JNPTNM0zenTp5sJCQnmm2++ae7evdscOnSomZqaapaWll52bgDhwZOxprFj06V4Otbk5eWZ77//vnns2DHz448/Np966ikzIiLCXLNmja39tDLe/OpXvzLfe+898+jRo+aWLVvM//qv/zKvuOKKBl+LyxlvqqurzYyMDHPChAm29gVAaAuHHsA06QMaEog9QMA2zaZpmi+++KJ51VVXmdHR0eYNN9zgk6+Al3TJx+LFi72e65t89WYxTdN86623zM6dO5sOh8Ps0KGD+dJLL/kkT2lpqTlmzBgzIyPDjImJMa+++mpz0qRJZkVFxWVve/369Zf8bzNs2DDTNF1fOT958mQzJSXFdDgcZu/evc3du3dfdl4A4cXuWNPYselSPB1rHnjggbravvWtb5m33nqr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",
      "text/plain": [
       "<Figure size 1200x300 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axs = plt.subplots(1, 5, figsize=(12, 3))  # 创建子图\n",
    "\n",
    "plt.sca(axs[0])\n",
    "ax = sns.heatmap(Q @ Q.T, cmap='bwr', vmax=2.5, vmin=-2.5,  # 绘制 Qc.T @ Qc 的热图\n",
    "                 linecolor = 'k',linewidths = 0.1,\n",
    "                 cbar_kws={\"orientation\": \"horizontal\"})\n",
    "ax.set_aspect(\"equal\")\n",
    "plt.title('I')\n",
    "\n",
    "plt.sca(axs[1])\n",
    "plt.title('=')  # 绘制等号\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[2])\n",
    "ax = sns.heatmap(Q, cmap='bwr', vmax=2.5, vmin=-2.5,  # 绘制 Qc.T 的热图\n",
    "                 linecolor = 'k',linewidths = 0.1,\n",
    "                 cbar_kws={\"orientation\": \"horizontal\"})\n",
    "ax.set_aspect(\"equal\")\n",
    "plt.title('Q')\n",
    "\n",
    "plt.sca(axs[3])\n",
    "plt.title('@')  # 绘制乘号\n",
    "plt.axis('off')\n",
    "\n",
    "plt.sca(axs[4])\n",
    "ax = sns.heatmap(Q.T, cmap='bwr', vmax=2.5, vmin=-2.5,  # 绘制 Qc 的热图\n",
    "                 linecolor = 'k',linewidths = 0.1,\n",
    "                 cbar_kws={\"orientation\": \"horizontal\"})\n",
    "ax.set_aspect(\"equal\")\n",
    "plt.title('Q.T')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "beb39885-cf6f-4d86-92cc-1eff833fdcc1",
   "metadata": {},
   "source": [
    "作者\t**生姜DrGinger**  \n",
    "脚本\t**生姜DrGinger**  \n",
    "视频\t**崔崔CuiCui**  \n",
    "开源资源\t[**GitHub**](https://github.com/Visualize-ML)  \n",
    "平台\t[**油管**](https://www.youtube.com/@DrGinger_Jiang)\t\t\n",
    "\t\t[**iris小课堂**](https://space.bilibili.com/3546865719052873)\t\t\n",
    "\t\t[**生姜DrGinger**](https://space.bilibili.com/513194466)  "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:base] *",
   "language": "python",
   "name": "conda-base-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
